function candy(ratings) {
    const n = ratings.length
    const candies = new Array(n).fill(1)

    // 从左到右遍历，保证右边孩子评分高的糖果更多
    for (let i = 1; i < n; i++) {
       if (ratings[i] > ratings[i - 1]) {
          candies[i] = candies[i - 1] + 1
       }
    }

    // 从右到左遍历，保证左边孩子评分高的糖果更多
    for (let i = n - 2; i >= 0; i--) {
       if (ratings[i] > ratings[i + 1]) {
          candies[i] = Math.max(candies[i], candies[i + 1] + 1)
       }
    }

    // 计算总糖果数
    return candies.reduce((sum, candy) => sum + candy, 0)
 }

 // 示例测试
 console.log(candy([1, 0, 2])) // 输出：5
 console.log(candy([1, 2, 2])) // 输出：4
 console.log(candy([1, 3, 2, 2, 1])) // 输出：7
 console.log(candy([1, 2, 3, 4, 5])) // 输出：15
 console.log(candy([5, 4, 3, 2, 1])) // 输出：15